// ========
// 数据查询
// ========
//===========================
// 1. 使用findOne 进行数据查询 
// 一般用来登录
//===========================
// 此方法写在 adminServices

// 普通登录
// async function login(loginId,loginPwd){
//     const result = admin.findOne({
//         where:{
//             loginId,
//             loginPwd
//         }
//     })
// }

// 对以上方法进行测试
// console.log("test")
// const {login} = require("./services/adminService");
// login('admin','123123').then((res)=>{
//     console.log(res)
// })
// {
//     id: 1,
//     loginId: 'admin',
//     loginPwd: '123123',
//     name: 'dudu',
//     createdAt: 2023-03-31T15:19:10.000Z,
//     updatedAt: 2023-03-31T15:19:10.000Z,
//     deletedAt: null
//   }
const {
    addAdmin,
    login,
    loginStrict,
    findById,
    getAllAdmin
} = require("./services/adminService");

// 重新新增一个管理员
// const {addAdmin,login,loginStrict} = require("./services/adminService");
async function add() {
    const resp = await addAdmin({
        loginId: 'dudu',
        loginPwd: 'Du123',
        name: 'dudu'
    })
    console.log(resp)
}

// add()

// 不进行区分大小写的密码查询
// async function testlogin(){
//     const resp = await login('dudu','du123');
//     console.log('登录成功',resp)
// }
// testlogin();

// 区分大小写的登录
// async function testStrictLogin(){
//     const resp = await loginStrict('dudu','Du')
//     console.log(resp)
// }
// testStrictLogin()


//==================================
// 按照主键进行单个数据的查询findByPk
//===================================
async function testFindById() {
    const resp = await findById(1)
    console.log(resp)
}
// testFindById()

//======================
// 得到所有管理员findAll
//======================
async function testFindAll() {
    const resp = await getAllAdmin()
    console.log(resp) // 返回一个数组

}
// testFindAll()



// 以下是对学生表的测试

const {
    getStudentById,
    getStudentInfo,
    getStudents,
    getStudentsWithTotal
} = require("./services/studentService")
async function testgetStudentById() {
    const resp = await getStudentById(44)
    console.log(resp)
}
// testgetStudentById()
// 如果要匹配到学生的班级信息
async function testgetStudentInfo() {
    const resp = await getStudentInfo(46)
    console.log(resp)
}
// testgetStudentInfo()

// 根据分页得到学生
async function  testgetStudents(){
    // const resp = await getStudents(2,3)
    // console.log(resp)
    // 有查询条件的
    // 查询前50条数据中的男生属于10班
    const resp = await getStudents(1,10,1,10)
    console.log(resp)
}
// testgetStudents() 



//另一种
async function  testgetStudentsWithCount(){
    // const resp = await getStudents(2,3)
    // console.log(resp)
    // 有查询条件的
    // 查询前50条数据中的男生属于10班
    const resp = await getStudentsWithTotal(1,10,1,10)
    console.log(resp)
}
// testgetStudentsWithCount()


// 下面是对班级api进行测试

const {getGrades,getGradeInfo} = require("./services/gradeService");
async function testgetGrades(){
    const res = await getGrades()
    console.log(res)

} 
// testgetGrades()

// 测试根据id查询班级 并且包含学生信息
async function testgetGradeInfo(){
    const res = await getGradeInfo(4)
    console.log(res)

} 
// testgetGradeInfo()


// 下面是书籍表
// 测试根据书名查询数据

const{getBookByName,getBooks} = require("./services/bookService")
async function testgetBookByName(){
    const res = await getBookByName('三',true)
    console.log(res)
}
// testgetBookByName()

// 分页查询书籍
async function testgetBooks(){
    const res = await getBooks()
    console.log(res)
}
testgetBooks()